package cool.houge.pig;

/**
 * 业务错误码定义.
 *
 * @author KK (kzou227@qq.com)
 */
public enum BizErrors implements BizError {
  // ============================================================================ //
  // 1 - 1000 公共错误码
  // ============================================================================ //
  C55("非法的枚举值", 400),
  C707("获取序列号错误", 500),
  C810("输入参数错误", 400),
  C911("第三方接口调用失败", 500),

  // ============================================================================ //
  // 1301 - 1399 登录通道错误码
  // ============================================================================ //
  C1301("登录通道不存在或口令错误", 401),

  // ============================================================================ //
  // 2000 - 2200 注册错误码
  // ============================================================================ //
  /** 邮件激活码不存在或者已使用过. */
  C2027("邮件激活码不存在或已使用过"),
  ;

  private final int code;
  private final String message;
  private final int httpStatus;

  BizErrors(String message) {
    this(message, 0);
  }

  BizErrors(String message, int httpStatus) {
    this.code = Integer.parseInt(this.name().substring(1));
    this.message = message;
    this.httpStatus = httpStatus;
  }

  @Override
  public int code() {
    return code;
  }

  @Override
  public String message() {
    return message;
  }

  @Override
  public int httpStatus() {
    return httpStatus;
  }
}
